const http = require('http');
const fs = require('fs')
const url = require('url')
const path = require('path');


// 专门用来搭建 http服务的模块 
// 用户输入www.baidu.com  得到一个首页  这就是一个http服务 
// 我们现在想搭建一个自己的服务 

// 1.创建服务

// http.createServer(function(){})
// 返回值  服务  


// const server = http.createServer(function(req,res){
//     // req 本次请求所有的信息   浏览器=> 服务器
//     // res  本次相应的所有内容  服务器 => 浏览器

//     // console.log('欢迎光临红浪漫,楼上男宾两位')

//     // 如果用户访问的地址是   localhost:8081/a 给用户返回信息 hello world

//      // 如果用户访问的地址是   localhost:8081/b 给用户返回一个页面

//     //  console.log(req.url);
//     if(req.url === '/a'){
//         res.end('hello world');
//     }

//     if(req.url === '/b'){
//        // 打开views 下的index.html页面
//        // 拿到页面的内容 然后通过 res.end 
//        fs.readFile('C:/www/2302/day31/views/index.html','utf-8',function(err,data){
//             if(err){
//                 return console.log(err)
//             }

//             res.end(data);
//        })
//     }
     
// })

const server = http.createServer(function(req,res){
    // 根据url地址  判断访问的路径  是什么后缀的  url模块
    // 到指定的位置读取这个文件 并返回  path模块
    // console.log(req.url); // /haha.html
    // localhost:8081/index.html
    const url_info = url.parse(req.url,true)
    // console.log(url_info.pathname);
    const path_info = path.parse(url_info.pathname);
    // console.log(path_info);
    // console.log(`C:\\www\\2302\\day31\\views\\${path_info.base}`)
    if(path_info.ext === '.html'){
        fs.readFile(`C:\\www\\2302\\day31\\views\\${path_info.base}`,'utf-8',function(err,data){
            if(err){
                fs.readFile('C:\\www\\2302\\day31\\views\\404.html','utf-8',function(err,data){
                    res.end(data);
                   
                })
                return  // 如果不存在 haha.html 读取404.html内容并且返回
                // 不再往下走了 return 写在readfile函数的外边 

               
            }
          
            res.end(data);
          
        })
    }


    if(path_info.ext === '.css'){
        fs.readFile(`C:\\www\\2302\\day31\\css\\${path_info.base}`,'utf-8',function(err,data){
            if(err){
                
                return res.end('')
               
            }
          
            res.end(data);
          
        })
    }


    if(path_info.ext === '.js'){
        fs.readFile(`C:\\www\\2302\\day31\\js\\${path_info.base}`,'utf-8',function(err,data){
            if(err){
                
                return res.end('')
               
            }
          
            res.end(data);
          
        })
    }

})

// 2.启动并监听服务 

// 服务.listen(端口号,回调函数)
// 端口号 0~65535
// 0~1024 不要用 因为已经被用作默认用途 

server.listen(8083,()=>{
    console.log('红浪漫开始营业,静候各位大佬光临');
})
